package com.shuai.common.constant;

/**
 * 用户等级和每次回复能够使用的最大token数对应关系的枚举
 */
public enum UserLevelTokenRelatedEnum {
    /**
     * 普通用户
     */
    COMMON_USER(1, 2000),
    /**
     * VIP用户
     */
    VIP_USER(2, 4000);
    /**
     * 用户类型
     */
    private final int level;

    /**
     * 每次回复能够使用的token数
     */
    private final int tokens;

    // 构造函数，用于初始化枚举元素的实例变量
    private UserLevelTokenRelatedEnum(int id, int tokens) {
        this.level = id;
        this.tokens = tokens;
    }

    // 获取ID的方法
    public int getLevel() {
        return level;
    }

    // 获取token数的方法
    public int getTokens() {
        return tokens;
    }

    // 通过ID获取对应的UserType
    public static UserLevelTokenRelatedEnum getById(int id) {
        for (UserLevelTokenRelatedEnum type : values()) {
            if (type.level == id) {
                return type;
            }
        }
        throw new IllegalArgumentException("No UserType with id " + id);
    }
}
